home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 December / MACPOWER-1997-12.ISO.7z / MACPOWER-1997-12.ISO / AMUG / PROGRAMMING / Raven 1.2 Examples.sit / Raven 1.2 Examples / Quill / Source / TextBoxEditor.cpp < prev    next >
Text File  |  1997-05-11  |  6KB  |  196 lines

  1. /*
  2.  *  File:       TextBoxEditor.cpp
  3.  *  Summary:       A view that knows how to edit a TTextBox.
  4.  *  Written by: Jesse Jones
  5.  *
  6.  *  Copyright ゥ 1996 Jesse Jones. 
  7.  *    For conditions of distribution and use, see copyright notice in ZTypes.h  
  8.  *
  9.  *  Change History (most recent first):    
  10.  *
  11.  *         <->    11/03/96    JDJ        Created
  12.  */
  13.  
  14. #include "TextBoxEditor.h"
  15.  
  16. #include <ZBehaviors.h>
  17. #include <ZColorSwatch.h>
  18. #include <ZControl.h>
  19. #include <ZTextBox.h>
  20.  
  21. #include "RsrcPopupMenu.h"
  22.  
  23.  
  24. // ===================================================================================
  25. //    class CEditTextBoxCommand
  26. // ===================================================================================
  27.  
  28. //---------------------------------------------------------------
  29. //
  30. // CEditTextBoxCommand::~CEditTextBoxCommand
  31. //
  32. //---------------------------------------------------------------
  33. CEditTextBoxCommand::~CEditTextBoxCommand()
  34. {
  35. }
  36.  
  37.  
  38. //---------------------------------------------------------------
  39. //
  40. // CEditTextBoxCommand::CEditTextBoxCommand
  41. //
  42. //---------------------------------------------------------------
  43. CEditTextBoxCommand::CEditTextBoxCommand(TTextBox* pane, const STextBoxInfo& oldInfo, const STextBoxInfo& newInfo) : Inherited(pane, oldInfo, newInfo)
  44. {
  45. }
  46.  
  47.  
  48. //---------------------------------------------------------------
  49. //
  50. // CEditTextBoxCommand::UpdatePane
  51. //
  52. //---------------------------------------------------------------
  53. void CEditTextBoxCommand::UpdatePane(const STextBoxInfo& info)
  54. {
  55.     mPane->SetText(info.text);
  56.     mPane->SetWordWrap(info.wrap);
  57.     mPane->SetDrawFrame(info.drawFrame);
  58.     mPane->SetOutlineHilite(info.outlineHiliting);
  59.     mPane->HandleEnable(info.enabled);
  60.     mPane->SetTextTraits(info.traitsID);
  61.     mPane->SetFrameColor(info.frameColor);
  62.     mPane->SetBackColor(info.backColor);
  63.     mPane->SetInsetBy(info.insetTextBy);
  64. }
  65.  
  66. #pragma mark -
  67.  
  68. // ===================================================================================
  69. //    CTextBoxEditor
  70. // ===================================================================================
  71.  
  72. static TReanimatorRegister<CTextBoxEditor> sTextBoxEditorRegistrar;
  73.  
  74. //---------------------------------------------------------------
  75. //
  76. // CTextBoxEditor::~CTextBoxEditor
  77. //
  78. //---------------------------------------------------------------
  79. CTextBoxEditor::~CTextBoxEditor()
  80. {
  81. }
  82.  
  83.  
  84. //---------------------------------------------------------------
  85. //
  86. // CTextBoxEditor::CTextBoxEditor
  87. //
  88. //---------------------------------------------------------------
  89. CTextBoxEditor::CTextBoxEditor(TView* superView) : Inherited(superView)
  90. {
  91. }
  92.  
  93.  
  94. //---------------------------------------------------------------
  95. //
  96. // CTextBoxEditor::Create                                [static]
  97. //
  98. //---------------------------------------------------------------
  99. MReanimatable* CTextBoxEditor::Create(MReanimatable* parent)
  100. {
  101.     return new CTextBoxEditor(dynamic_cast<TView*>(parent));
  102. }
  103.  
  104.  
  105. //---------------------------------------------------------------
  106. //
  107. // CTextBoxEditor::GetEditorInfo        
  108. //
  109. //---------------------------------------------------------------
  110. STextBoxInfo CTextBoxEditor::GetEditorInfo() const
  111. {
  112.     STextBoxInfo info;
  113.     
  114.     TTextBox* textBox = nil;
  115.     TControl* control = nil;
  116.     TColorSwatch* color = nil;
  117.         
  118.     textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Text"));
  119.     info.text = textBox->GetText();
  120.     
  121.     control = dynamic_cast<TControl*>(this->FindSubPane("Wrap"));
  122.     info.wrap = control->GetValue();
  123.     
  124.     control = dynamic_cast<TControl*>(this->FindSubPane("Draw Frame"));
  125.     info.drawFrame = control->GetValue();
  126.     
  127.     control = dynamic_cast<TControl*>(this->FindSubPane("Outline"));
  128.     info.outlineHiliting = control->GetValue();
  129.     
  130.     control = dynamic_cast<TControl*>(this->FindSubPane("Enabled"));
  131.     info.enabled = control->GetValue();
  132.     
  133.     CRsrcPopupMenu* popup = dynamic_cast<CRsrcPopupMenu*>(this->FindSubPane("Traits ID"));
  134.     info.traitsID = popup->GetID();
  135.     
  136.     color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Frame Color"));
  137.     info.frameColor = color->GetColor();
  138.     
  139.     color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Back Color"));
  140.     info.backColor = color->GetColor();
  141.     
  142.     textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetX"));
  143.     info.insetTextBy.h = textBox->GetValue();
  144.     
  145.     textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetY"));
  146.     info.insetTextBy.v = textBox->GetValue();
  147.     
  148.     return info;
  149. }
  150.  
  151.  
  152. //---------------------------------------------------------------
  153. //
  154. // CTextBoxEditor::SetEditorInfo
  155. //
  156. //---------------------------------------------------------------
  157. void CTextBoxEditor::SetEditorInfo(const STextBoxInfo& info)
  158. {
  159.     TTextBox* textBox = nil;
  160.     TControl* control = nil;
  161.     TColorSwatch* color = nil;
  162.         
  163.     textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Text"));
  164.     textBox->SetText(info.text);
  165.     
  166.     control = dynamic_cast<TControl*>(this->FindSubPane("Wrap"));
  167.     control->SetValue(info.wrap);
  168.     
  169.     control = dynamic_cast<TControl*>(this->FindSubPane("Draw Frame"));
  170.     control->SetValue(info.drawFrame);
  171.     
  172.     control = dynamic_cast<TControl*>(this->FindSubPane("Outline"));
  173.     control->SetValue(info.outlineHiliting);
  174.     
  175.     control = dynamic_cast<TControl*>(this->FindSubPane("Enabled"));
  176.     control->SetValue(info.enabled);
  177.     
  178.     CRsrcPopupMenu* popup = dynamic_cast<CRsrcPopupMenu*>(this->FindSubPane("Traits ID"));
  179.     popup->SetID(info.traitsID);
  180.     
  181.     color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Frame Color"));
  182.     color->SetColor(info.frameColor);
  183.     
  184.     color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Back Color"));
  185.     color->SetColor(info.backColor);
  186.     
  187.     textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetX"));
  188.     textBox->SetValue(info.insetTextBy.h);
  189.     
  190.     textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetY"));
  191.     textBox->SetValue(info.insetTextBy.v);
  192. }
  193.  
  194.  
  195.  
  196.